package com.cqrt.dto;

import com.ty.basic.utils.excel.annotation.ExcelModel;
import com.ty.basic.utils.excel.annotation.ExcelProperty;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

@Data
@ExcelModel
public class ImportProjectDTO {

    /**
     * 项目ID
     */
    @ExcelProperty(
            index = 1,
            name = "项目ID")
    private String oid;

    /**
     * 板块（如业务板块、部门板块等）
     */

    @ExcelProperty(
            index = 2,
            name = "板块")
    private String sector;

    /**
     * 年度（如2024、2025）
     */
    @ExcelProperty(
            index = 3,
            name = "年度")
    private String year;

    /**
     * 大类/客户（如产品大类、客户分类）
     */
    @ExcelProperty(
            index = 4,
            name = "大类/客户")
    private String categoryOrCustomer;

    /**
     * 开发类型（如新品开发、迭代开发、定制开发等）
     */
    @ExcelProperty(
            index = 5,
            name = "开发类型")
    private String developmentType;

    /**
     * 产品类别（如硬件、软件、系统集成等）
     */
    @ExcelProperty(
            index = 6,
            name = "产品类别")
    private String productCategory;

    /**
     * 产品系列（如XX系列、YY系列）
     */
    @ExcelProperty(
            index = 7,
            name = "产品系列")
    private String productSeries;

    /**
     * 项目或产品名称
     */
    @ExcelProperty(
            index = 8,
            name = "项目或产品名称")
    private String projectOrProductName;

    /**
     * 项目开发令号（项目唯一标识编号）
     */
    @ExcelProperty(
            index = 9,
            name = "项目开发令号")
    private String projectDevelopmentNo;

    /**
     * 关联项目（关联的其他项目名称/编号）
     */
    @ExcelProperty(
            index = 10,
            name = "关联项目")
    private String relatedProject;

    /**
     * 开发等级（如P0核心级、P1重要级、P2一般级等）
     */
    @ExcelProperty(
            index = 11,
            name = "开发等级")
    private String developmentLevel;

    /**
     * 推进方式（如瀑布式、敏捷式、迭代式等）
     */
    @ExcelProperty(
            index = 12,
            name = "推进方式")
    private String promotionMethod;

    /**
     * 客户（对应客户名称）
     */
    @ExcelProperty(
            index = 13,
            name = "客户")
    private String customer;

    /**
     * 需求提交者（提交需求的人员姓名/ID）
     */
    @ExcelProperty(
            index = 14,
            name = "需求提交者")
    private String requirementSubmitter;

    /**
     * 项目经理（负责项目的人员姓名/ID）
     */
    @ExcelProperty(
            index = 15,
            name = "项目经理")
    private String projectManager;

    /**
     * 主设计师（项目主设计人员姓名/ID）
     */
    @ExcelProperty(
            index = 16,
            name = "主设计师")
    private String leadDesigner;

    /**
     * 项目状态（如规划中、开发中、测试中、已上线、已终止等）
     */
    @ExcelProperty(
            index = 17,
            name = "项目状态")
    private String projectStatus;

    /**
     * 任务名称（具体任务名称，如“需求评审”“接口开发”等）
     */
    @ExcelProperty(
            index = 18,
            name = "任务名称")
    private String taskName;

    /**
     * 任务状态（如未开始、进行中、已完成、已延期、已取消等）
     */
    @ExcelProperty(
            index = 19,
            name = "任务状态")
    private String taskStatus;

    /**
     * 计划开始时间
     */
    @ExcelProperty(
            index = 20,
            name = "计划开始时间")
    private String plannedStartTime;

    /**
     * 计划结束时间
     */
    @ExcelProperty(
            index = 21,
            name = "计划结束时间")
    private String plannedEndTime;

    /**
     * 实际开始时间
     */
    @ExcelProperty(
            index = 22,
            name = "实际开始时间")
    private String actualStartTime;

    /**
     * 实际结束时间
     */
    @ExcelProperty(
            index = 23,
            name = "实际结束时间")
    private String actualEndTime;


    public boolean isRowEmpty() {
        return (StringUtils.isNotBlank(this.projectOrProductName)
                &&StringUtils.isNotBlank(this.projectDevelopmentNo)
        );
    }


}
